package main

import "fmt"

var x = 100
var y = "王宏宇"

// 变量
func main() {
	//var 变量名 类型 = 表达式

	//标准声明模式
	var name string
	var age int
	var is0k bool
	fmt.Println(name, age, is0k)s

	//批量声明变量
	var (
		a string
		b int
		c bool
		d float32
	)
	fmt.Println(a, b, c, d)
	//声明变量同时指定初始值
	var name1 string = "小王子"
	var age1 = 18
	fmt.Println(name1, age1)
	var name2, age2 = "沙河娜扎", 28
	fmt.Println(name2, age2)
	//类型推导,让编译器根据变量的初识值推导出其类型
	var name3 string = "小王子"
	var age3 = 18
	fmt.Println(name3, age3)

	//短变量声明
	//在函数内部，可以使用更简略的 := 方式声明并初始化变量。
	m := 10
	fmt.Println(m)

	//匿名变量
	//在使用多重赋值时，如果想要忽略某个值，可以使用匿名变量（anonymous variable）。
	//匿名变量用一个下划线_表示，
	x, _ = foo()
	fmt.Println("x =", x)
	_, y = foo()
	fmt.Println("y =", y)
}
func foo() (int, string) {
	return 21, "王宏宇"
}

//注意事项：
//函数外的每个语句都必须以关键字开始（var、const、func等）
//:=不能使用在函数外。
//_多用于占位，表示忽略值
